package chapter6.JunitPart;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

/**
 * @Project ：learn_java
 * @File ：JunitTest01.java
 * @IDE ：IntelliJ IDEA
 * @Author ：自由如风间
 * @Date ：2025/3/21 15:56
 * @Description ：学习junit的简单用法，注意使用的是几代的包。
 * 4代的注解Before和After在5代中是BeforeEach和AfterEach
 *
 *      JUnit 4：使用了一些特定的注解来定义测试方法和测试生命周期，例如：
 *      @Test：标记一个方法为测试方法。
 *      @Before 和 @After：分别在每个测试方法执行前后执行。
 *      @BeforeClass 和 @AfterClass：在所有测试方法执行前后执行，且方法必须为静态方法。
 *      JUnit 5：引入了新的注解，使得注解更加直观和灵活，例如：
 *      @Test：同样标记一个方法为测试方法。
 *      @BeforeEach 和 @AfterEach：替代 JUnit 4 的 @Before 和 @After。
 *      @BeforeAll 和 @AfterAll：替代 JUnit 4 的 @BeforeClass 和 @AfterClass，
 *          且 @BeforeAll 和 @AfterAll 标记的方法可以是非静态方法，
 *          但需要所在的测试类为 static 或者使用 @TestInstance(Lifecycle.PER_CLASS) 注解。
 *      @DisplayName：可以为测试类或测试方法提供自定义的显示名称。
 */

public class JunitTest01 {
    public static void main(String[] args) {
        System.out.println("main");
    }

    @Test
    public void test01() {
        System.out.println("test01");
    }

    @BeforeEach
    public void before() {
        System.out.println("run before test");
    }

    @AfterEach
    public void after() {
        System.out.println("run after test");
    }
}
